﻿namespace Sgr.Organizations
{
    /// <summary>
    /// 组织信息模型，包含用于跨平台映射的字段与元数据。
    /// </summary>
    public class OrganizationInfo
    {
        public long OrgId { get; set; }
        public string Code { get; set; } = string.Empty;
        public string Name { get; set; } = string.Empty;
        public string ParentId { get; set; } = string.Empty;

        /// <summary>
        /// 外部平台的 Id（比如钉钉部门 Id），可为空。
        /// </summary>
        public string? ExternalId { get; set; }

        /// <summary>
        /// 数据来源标识（例如 "Local", "DingTalk", "WeCom", "Wps"）
        /// </summary>
        public string Source { get; set; } = "Local";

        /// <summary>
        /// 是否启用/有效（方便实现软删除或禁用）
        /// </summary>
        public bool IsActive { get; set; } = true;

        /// <summary>
        /// 最后更新时间（来自源头）
        /// </summary>
        public DateTime? LastModified { get; set; }

        /// <summary>
        /// 任意键值元数据（平台特有扩展）
        /// </summary>
        public IReadOnlyDictionary<string, string>? Metadata { get; set; }

        public bool IsRoot => string.IsNullOrWhiteSpace(ParentId);
    }
}